package com.eltsistemas.dao;

import com.eltsistema.hibernate.HibernateUtil;
import com.eltsistemas.modelo.Cilindrada;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;

public class CilindradaDao {
	
	private Session session;
	
	public CilindradaDao()
	{
            session = new HibernateUtil().getSession();
            session.beginTransaction();
	}
	
	public void adiciona(Cilindrada cilindrada)
	{
            session.save(cilindrada);
            session.getTransaction().commit();
            session.close();
	}
	
	public List<Cilindrada> lista()
	{
            List<Cilindrada> cilindradaList = session.createCriteria(Cilindrada.class).list();
            session.close();
            return cilindradaList;
	}
	
	public Cilindrada exibe(Cilindrada cilindrada)
	{
            Cilindrada encontradoCilindrada = (Cilindrada) session.load(Cilindrada.class, cilindrada.getId());
            return encontradoCilindrada;
	}
	
	public void altera(Cilindrada cilindrada)
	{
            session.update(cilindrada);
            session.getTransaction().commit();
            session.close();
	}
	
	public void remover(Cilindrada cilindrada)
	{
            session.delete(cilindrada);
            session.getTransaction().commit();
            session.close();
	}

	public Cilindrada buscaCodigo(String nome)
	{
            Query query = this.session.createQuery("from Cilindrada " +
				"where nome = :nome");
            query.setString("nome", nome);
				
            Cilindrada encontradoCilindrada = (Cilindrada) query.uniqueResult();
            session.close();
            return encontradoCilindrada;
		
	}
	
}
